A communications system typically includes multiple devices communicating with each other over some communication medium. Each device typically includes a transmitter to send information and a receiver to receive information. When performing full duplex communications, the transmitter for a given device may generate an echo signal that is received by the receiver of the same device. As a result, a technique referred to as echo cancellation may be used to suppress or cancel the echo signals. Echo cancellation involves recognizing the originally transmitted signal that appears after passing through a physical medium, with some delay, in the received signal. Once the echo is recognized, it may be partially or wholly removed by subtracting it from the received signal. This technique is generally implemented with the aid of digital signal processing (DSP).
Echo cancellation is usually performed on the sampled analog echo signal, which is the outcome of the transmitted echo signal after passing through a physical medium (channel). In many cases, however, the sampling point constantly changes due to clock imperfections, analog imperfections, intentional changes of the sampling phase due to timing recovery performed in the system, and other factors. Consequently, it is necessary to constantly adapt the echo cancellers in order to adjust to the changing sampled echo signal, in order to provide good echo cancellation or suppression in a device or network.
In addition, echo cancellation needs to be efficient. For example, higher speed communication networks may require increased hardware performance. In another example, smaller form factor devices may drive the need for a decrease in power requirements. Consequently, it is necessary to efficiently perform echo cancellation or suppression in a device or network.